دورهمی برنامه نویسی

IDE یک جعبه ابزار آماده برای برنامه نویس

IDE یک جعبه ابزار آماده برای برنامه نویس
IDE چیست
 
سلام دوستان امروز می خواهیم درباره IDE صحبت کنیم و با ویژگی های آنها آشنا شویم و در ادامه به معرفی بهترین آنها بپردازیم. پس با ما همراه باشید. اما بهتر است قبل از تعریف IDE یک شناختی از خود این کلمه داشته باشیم.
کلمه Integrated Development Environment یا IDE که ازکلمه های Integrated به معنی یکپارچه یا مجتمع ، Development یا توسعه و Environment یا محیط تشکیل شده  که با  کنار هم قرار دادن این واژه ها، به جمله فارسی محیط یکپارچه ( مجتمع ) توسعه می رسیم.
 
 IDE در برنامه نویسی یعنی:
یک محیط برنامه نویسی که مجموعه ای از نرم افزارها، شامل: ویرایشگر کد برنامه (Code Editor)، کامپایلر (Compiler)، دیباگر (Debugger) و در نهایت رابط گرافیکی یا GUI  را در یکجا جمع کرده و در اختیار برنامه نویس قرار داده است تا بتواند به راحتی و بدون دغدغه کدهای برنامه خود را تولید کند. در واقع به برنامه نویس توسعه دهنده و به محیطی که یک برنامه نویس در آن برنامه نویسی می کند محیط توسعه می گویند.
 
ویژگی های مشترک تمام IDEها:
  1. ویرایشگر سورس کد
این ویژگی باعث می شود که بتوانید در آن، کدهای مورد نظر را بنویسید و آنها را ویرایش کنید که به اصطلاح به آنها Source Code Editor گویند. در واقع این ویرایشگر محیطی است که برنامه نویس کدهای خود را درون آن وارد می کند و کدی که نوشته است توسط کامپایلر یا مفسر تبدیل به زبان ماشین و در نهایت اجرا می شود که از نظر کارکرد بسیار شبیه به ویرایشگر های کدهای HTML متنی است.
  1. کامپایلر یا مفسر
کامپایلری که در IDE تعبیه شده است کد نوشته شده در Source Code Editor را تبدیل به برنامه اجرایی می کند و اگر لازم باشد برنامه بصورت خط به خط توسط مفسر بدون نیاز به کامپایل شدن اجرا می شود.
  1. ابزارهای ساخت اتوماسیون
تمامی فرآیند های مربوط به کامپایل، تفسیر یا Interpret و Debug همگی توسط IDE انجام می شود.
  1. اصطلاح کننده خطا
همه IDE ها دارای Debugger هستند تا متوجه شوند که کجای Source Code برنامه مشکل دارد.
 
IDEهای معروف را می شناسید؟
  • ویژوال استودیو
  • ایکلیپس
  • اندروید استودیو
  • نت بینز
  • سابلیم تکست
آیا برنامه نویس ها ی وب هم نیز نیاز به IDE دارند؟
یک برنامه نویس وب اگر می خواهد وب سایت های حرفه ای یا نرم افزارهای کاربردی تحت وب حرفه ای بنویسد نیاز به یک IDE قوی دارد . درست است که با یک ویرایشگر متنی ساده مثل Notepad هم می شود یک وب سایت را بدون مشکل طراحی کرد اما با داشتن یک IDE حرفه ای، انعطاف پذیری برنامه نویس بسیار بالا می رود و مجبور نیست که چرخ را دوباره اختراع کند.
 
پس چرا برنامه نویسان وب از IDE استفاده نمی کنند؟
یکی از دلایل این می تواند باشد، با توجه به اینکه اکثر زبان های برنامه نویسی وب نیازی به کامپایل شدن ندارند بنابراین نیازی به IDE  ندارند و IDE هایی که در وب استفاده می شود بیشتر یک Debugger زبان جاوا اسکریپت محسوب می شوند. بنابراین نیاز چندانی هم به IDE نیست. اما وقتی صحبت از یک نرم افزار مالی ، یک نرم افزار اتوماسیون ، یک سیستم مدیریت محتوای وب و ... می شود دیگر نمی توان نقش یک IDE قوی را در نظر نگرفت زیرا در چنین شرایطی حتما نیاز به Compiler  وجود دارد.
 
با این تفاسیر می توان گفت:
 زمانیکه می خواهیم یک وب سایت استاتیک طراحی کنیم که کدهای HTML و CSS و برخی اوقات جاوا اسکریپت رادر خود دارند، شاید نیاز چندانی به داشتن یک IDE نباشد اما زمانیکه صحبت از وب سایت های داینامیک برای یک برنامه کاربردی تحت وب یا طراحی نرم افزارهای موبایل می شود باید به فکر استفاده از یک IDE قوی بود.
 
 
+ نوشته شده در  سه شنبه 7 بهمن 1399ساعت 16:03  توسط fattahi 

مبحث چند ریختی در شی گرایی چیست؟

مبحث چند ریختی در شی گرایی چیست؟

امروز می خواهیم درباره polymorphism در سی شارپ صحبت کنیمو اینکه چرا مایکروسافت این قابلیت را برای ما قرار داده؟ در مقاله قبل درباره مفهوم شی گرایی صحبت کردیم و دانستیم که یکی از بخش های شی گرایی، polymorphism است. 
پس چندریختی در زبان برنامه نویسی سی شارپ، به ما اجازه میدهد تا برنامه هایی بنویسیم که انواع مختلفی از کلاسهای مرتبط را به شکل کلی اداره کنیم. همچنین افزودن کلاسهای جدید به سیستم را برای ما ساده تر میکند. چندریختی یعنی توانایی استفاده از شکلهای مختلف یک نوع، بدون پرداختن به جزئیات آن.


روش های مختلف چند ریختی در سی شارپ:

  • متدهای مجازی 

متد مجازی، متدی است که در کلاس پایه با واژه virtual اعلام میشود و در یک یا چند کلاس مشتق دوباره تعریف میشود. بنابراین هر کلاس مشتق میتواند نسخه خاصی از متد مجازی را داشته باشد. در کلاس مشتق، هنگام تعریف مجدد متد مجازی، باید آنرا با واژه کلیدی override مشخص کرد.اگر بخواهید در کلاس مشتق، متدی همنام با کلاس پایه داشته باشید، ولی متد مجازی  نباشد، (یعنی فرض کنید، میخواهید متد مجازی ایجاد کنید که هیچ ربطی به کلاس مشتق ندارد) در این صورت در کلاس مشتق، این متد را باید با واژه new مشخص کنید.
توجه کنید که در هنگام تعریف مجدد متدها در کلاسهای پایه و مشتق اسامی و امضاهای نوع متد تعریف شده دقیقا با متد مجازی یکسان باشد.

  • کلاسها ومتدهای انتزاعی

اگر عمق سلسله مراتب وراثت کلاسها بسیار زیاد باشد، کلاسهایی که در بالای سلسله مراتب وجود دارند، دقیقا نمیتوانند نیازهای واقعی کلاسهای مشتق خود را بشناسند. به همین دلیل این کلاسها طوری طراحی میشوند که مشترکات کلاسهای مشتق خود را نگه دارند و کلاسهای مشتق، موارد مورد نیاز شما را پیاده سازی کند. چنین کلاسی، ماهیت متدها و خواصی را که کلاسهای مشتق باید پیاده سازی کنند، تعیین می نماید، ولی خودش آنها را پیاده سازی نمیکند. این کلاسها را کلاسهای انتزاع گویند. کلاسهای انتزاعی قابل نمونه سازی نیستند و با واژه abstract مشخص میشوند. توجه داشته باشید که متدهای static نمیتوانند abstract باشند.

  • delegate ها

متغیرهای عضو کلاس(فیلدها) را میتوان بصورت ثابت const یا readonly اعلان کرد. فیلدهایی که با واژه const اعلان میشوند، در هنگام فراخوانی باید مقدار اولیه بگیرند. فیلدهایی که با واژه readonly اعلان میشوند، میتوانند در سازنده کلاس مقدار اولیه بگیرند، ولی پس از آن مقدارشان قابل تغییر نیست.
گاهی خوب است که اشیا، متدها را بعنوان پارامترها به متدهای دیگر ارسال کنند اما سی شارپ اجازه نمیدهد که مرجع های متد، مستقیما بعنوان پارامتر به متدهای دیگر ارسال شوند به همین دلیل برای ما delegate را قرار داده است.
دلیگیت ها در C# در واقع اشاره گری به متدها هستند. کاربرد اصلی آن جایی است که میخواهیم قطعه کدی را اجرا کنیم اما تا زمان اجرای برنامه آن قطعه کد مشخص نیست کدام قسمت از برنامه است.

  • تعریف مجدد عملگرها

چندریختی در سی شارپ

تعریف مجدد عملگرها، شکل دیگری از چندریختی است . از تعریف مجدد عملگرها وقتی استفاده میشود که انجام عملیات، نسبت به فراخوانی عادی متد، روشن تر انجام شود. بعنوان مثال، عملگر + میتواند دو عدد صحیح یا دو عدد اعشاری را با هم جمع کند و دو رشته را با هم الحاق کند. مترجم با توجه به عملوندهای آن متوجه میشود که چه کدی باید تولید نماید. علاوه بر این در #C امکاناتی فراهم آماده است که برنامه نویس میتواند عملگرها را به دلخواه خودش تعریف کند.

کلام آخر:

خب دوستان این هم بحث چند ریختی در سی شارپ اگر به دنبال آموزش های بیشتری هستید می توانید از سایت خود مایکروسافت استفاده کنید و یا سوال خودتان را در انجمن Stack Overflow  استفاده کنید چرا که جامعه ای بزرگ و فعال در زمینه سی شارپ دارد. موفق باشید.

 

+ نوشته شده در  شنبه 4 بهمن 1399ساعت 20:53  توسط fattahi